home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / web / spiderweb / bug-reports < prev    next >
Internet Message Format  |  1990-09-10  |  75KB

  1. From chase@orc.olivetti.com Thu Apr  6 16:11:45 1989
  2. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  3.     id AA24139; Thu, 6 Apr 89 16:11:43 EDT
  4. Received: from NET.BIO.NET by Princeton.EDU (5.58+++/2.6)
  5.     id AA12881; Thu, 6 Apr 89 16:11:18 EDT
  6. Received: from orc.olivetti.com by net.bio.net (5.59/1.15) with UUCP 
  7.     id AA09769; Thu, 6 Apr 89 13:10:52 PDT
  8. Received: from ozona.orc.olivetti.com by orc.olivetti.com (3.2/SMI-3.2)
  9.     id AA14880; Thu, 6 Apr 89 12:31:15 PDT
  10. Received: by ozona.orc.olivetti.com (3.2/SMI-3.2)
  11.     id AA06589; Thu, 6 Apr 89 12:40:52 PDT
  12. From: chase@orc.olivetti.com (David Chase)
  13. Message-Id: <8904061940.AA06589@ozona.orc.olivetti.com>
  14. To: nr@Princeton.EDU
  15. Subject: "cputype?"
  16. Reply-To: David Chase <chase@orc.olivetti.com>
  17. Date: Thu, 06 Apr 89 12:40:50 -0700
  18. Status: RO
  19.  
  20. is not a command on my Unix machine (a Sun).
  21.  
  22. David
  23.  
  24. From chase@orc.olivetti.com Thu Apr  6 16:11:56 1989
  25. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  26.     id AA24169; Thu, 6 Apr 89 16:11:53 EDT
  27. Received: from NET.BIO.NET by Princeton.EDU (5.58+++/2.6)
  28.     id AA12880; Thu, 6 Apr 89 16:11:17 EDT
  29. Received: from orc.olivetti.com by net.bio.net (5.59/1.15) with UUCP 
  30.     id AA09765; Thu, 6 Apr 89 13:10:50 PDT
  31. Received: from ozona.orc.olivetti.com by orc.olivetti.com (3.2/SMI-3.2)
  32.     id AA14856; Thu, 6 Apr 89 12:27:42 PDT
  33. Received: by ozona.orc.olivetti.com (3.2/SMI-3.2)
  34.     id AA06558; Thu, 6 Apr 89 12:37:19 PDT
  35. From: chase@orc.olivetti.com (David Chase)
  36. Message-Id: <8904061937.AA06558@ozona.orc.olivetti.com>
  37. To: nr@Princeton.EDU
  38. Subject: Spideryweb bug report
  39. Reply-To: David Chase <chase@orc.olivetti.com>
  40. Date: Thu, 06 Apr 89 12:37:15 -0700
  41. Status: RO
  42.  
  43. An installation problem:  People who care about Trojan horses
  44. don't put "." at the beginning of their path, so shell scripts
  45. invoked as "make" never get executed.  Try "./make" instead.
  46. I realize that "." at front is the Unix default, but it is an
  47. exceptionally stupid one (put a benign Trojan horse named "ls"
  48. in a few world-writeable directories on a time-shared Unix machine,
  49. and see what happens).  I don't know why this isn't more widely
  50. worried about.
  51.  
  52. David
  53.  
  54. From chase@orc.olivetti.com Thu Apr  6 16:12:03 1989
  55. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  56.     id AA24179; Thu, 6 Apr 89 16:12:01 EDT
  57. Received: from NET.BIO.NET by Princeton.EDU (5.58+++/2.6)
  58.     id AA12883; Thu, 6 Apr 89 16:11:24 EDT
  59. Received: from orc.olivetti.com by net.bio.net (5.59/1.15) with UUCP 
  60.     id AA09777; Thu, 6 Apr 89 13:10:58 PDT
  61. Received: from ozona.orc.olivetti.com by orc.olivetti.com (3.2/SMI-3.2)
  62.     id AA14962; Thu, 6 Apr 89 12:44:22 PDT
  63. Received: by ozona.orc.olivetti.com (3.2/SMI-3.2)
  64.     id AA06693; Thu, 6 Apr 89 12:53:57 PDT
  65. From: chase@orc.olivetti.com (David Chase)
  66. Message-Id: <8904061953.AA06693@ozona.orc.olivetti.com>
  67. To: nr@Princeton.EDU
  68. Subject: That cute trick with '#' in variable definitions
  69. Reply-To: David Chase <chase@orc.olivetti.com>
  70. Date: Thu, 06 Apr 89 12:53:54 -0700
  71. Status: RO
  72.  
  73. was unknown to me.  I broke things badly "cleaning up" the
  74. definition of the three directories.  I think you ought
  75. to either change the formatting, or mention that there is
  76. a reason for the '#' immediately following the definitions
  77. (it's not like I'm a novice at this, either)
  78.  
  79. David
  80.  
  81. From chase@orc.olivetti.com Thu Apr  6 16:12:13 1989
  82. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  83.     id AA24188; Thu, 6 Apr 89 16:12:10 EDT
  84. Received: from NET.BIO.NET by Princeton.EDU (5.58+++/2.6)
  85.     id AA12886; Thu, 6 Apr 89 16:11:27 EDT
  86. Received: from orc.olivetti.com by net.bio.net (5.59/1.15) with UUCP 
  87.     id AA09786; Thu, 6 Apr 89 13:11:04 PDT
  88. Received: from ozona.orc.olivetti.com by orc.olivetti.com (3.2/SMI-3.2)
  89.     id AA15001; Thu, 6 Apr 89 13:02:35 PDT
  90. Received: by ozona.orc.olivetti.com (3.2/SMI-3.2)
  91.     id AA06741; Thu, 6 Apr 89 13:12:11 PDT
  92. From: chase@orc.olivetti.com (David Chase)
  93. Message-Id: <8904062012.AA06741@ozona.orc.olivetti.com>
  94. To: nr@Princeton.EDU
  95. Subject: So far, so good
  96. Reply-To: David Chase <chase@orc.olivetti.com>
  97. Date: Thu, 06 Apr 89 13:12:08 -0700
  98. Status: RO
  99.  
  100. It made it past "make boot", and I'm fixing to look at
  101. the documentation.  My intention is to see if this can
  102. easily be made to generate Modula-3 -- if so, (I think)
  103. I can use it to generate test input for the Modula-3
  104. compiler.  Of course, any such test input is unlikely to
  105. be incredibly sophisticated, since it will be machine-
  106. generated, but it's better than none at all.
  107.  
  108. David
  109.  
  110. From nr Thu Apr  6 20:12:03 1989
  111. Received: by notecnirp.Princeton.EDU (5.51/1.81)
  112.     id AA05087; Thu, 6 Apr 89 20:11:36 EDT
  113. Date: Thu, 6 Apr 89 20:11:36 EDT
  114. From: nr (Norman Ramsey)
  115. Message-Id: <8904070011.AA05087@notecnirp.Princeton.EDU>
  116. To: chase@orc.olivetti.com
  117. Subject: Re:  "cputype?"
  118. Cc: nr
  119. Status: RO
  120.  
  121. > Subject: "cputype?"
  122. > is not a command on my Unix machine (a Sun).
  123. > David
  124.  
  125. I have added instructions to README and to WebMakefile that deal with
  126. cputype.  As far as I know, it is a local idiosyncracy, and my
  127. documentation predates it.  Thank you for calling it to my attention.
  128.  
  129. It looks like you've already figured it out, but a shell script
  130. containing the line `echo sun3' will do fine if it is somewhere on
  131. your search path.
  132.  
  133. > An installation problem:  People who care about Trojan horses
  134. > don't put "." at the beginning of their path, so shell scripts
  135. > invoked as "make" never get executed.  Try "./make" instead.
  136.  
  137. I don't see a clean way to fix this.  Are any files affected besides
  138. WEBROOT/Makefile?  The problem is that some of the calls to $(MAKE)
  139. are calls to shell scripts in subdirectories, while others are calls
  140. to /bin/make in the current directory.  What have you done to improve
  141. things?
  142.  
  143. > I realize that "." at front is the Unix default, but it is an
  144. > exceptionally stupid one (put a benign Trojan horse named "ls"
  145. > in a few world-writeable directories on a time-shared Unix machine,
  146. > and see what happens).  I don't know why this isn't more widely
  147. > worried about.
  148.  
  149. I think this isn't worried about because most people assume the world
  150. is benign until they are bitten once or twice.  Some of my colleagues
  151. swear by never putting . on their path at all.  Me, I haven't been
  152. bitten yet.
  153. > Subject: That cute trick with '#' in variable definitions
  154. > was unknown to me.  I broke things badly "cleaning up" the
  155. > definition of the three directories.  I think you ought
  156. > to either change the formatting, or mention that there is
  157. > a reason for the '#' immediately following the definitions
  158. > (it's not like I'm a novice at this, either)
  159.  
  160. I put a comment in.  When I first prepared this for distribution, I
  161. broke things badly by commenting those (previously uncommented) macro
  162. definitions. 
  163.  
  164. > It made it past "make boot", and I'm fixing to look at
  165. > the documentation.  My intention is to see if this can
  166. > easily be made to generate Modula-3 -- if so, (I think)
  167. > I can use it to generate test input for the Modula-3
  168. > compiler.  Of course, any such test input is unlikely to
  169. > be incredibly sophisticated, since it will be machine-
  170. > generated, but it's better than none at all.
  171.  
  172. Generating Modula-3 from a Modula-3 literate program should be no
  173. trouble at all.  One the other hand, if you want to translate
  174. something else into Modula-3, you are probably better off using
  175. WEB-to-C as a basis.  Let me know how it goes; I would love to have a
  176. Modula-3 spider file to add to the distribution.
  177.  
  178. Norman
  179.  
  180.  
  181. From Chris.Paris@vega.fac.cs.cmu.edu Mon Jan 23 20:52:57 1989
  182. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.68)
  183.     id AA03118; Mon, 23 Jan 89 20:52:56 EST
  184. Received: from VEGA.FAC.CS.CMU.EDU by Princeton.EDU (5.58+++/1.98)
  185.     id AA27627; Mon, 23 Jan 89 20:52:44 EST
  186. Message-Id: <8901240152.AA27627@Princeton.EDU>
  187. Received: from VEGA.FAC.CS.CMU.EDU by VEGA.FAC.CS.CMU.EDU; 23 Jan 89 20:51:40 EST
  188. To: nr@Princeton.EDU
  189. Reply-To: cap@cs.cmu.edu (Chris Paris)
  190. Subject: webkernel
  191. Date: Mon, 23 Jan 89 20:51:36 EST
  192. From: Chris.Paris@VEGA.FAC.CS.CMU.EDU
  193. Status: RO
  194.  
  195. I would be more than happy to help beta test Spider.  I think it is a
  196. wonderful idea that seems very well implimented.  I installed the
  197. webkernel you sent me (thanks), and it fixed most problems I was
  198. having.  However, when ceeweave->TeX comes across something like,
  199.  
  200.     @u
  201.     #include <stdio.h>
  202.     #include <fcntl.h>
  203.     #include "myinclude.h"
  204.  
  205.     main()
  206.  
  207. things happen that I wouldn't expect.  First, the filenames in angle
  208. brackets get set in italics without the brackets.  I wouldn't expect
  209. this because it looks like c.spider has code to recognize and put in
  210. brackets.  "myinclude.h" is set in \tt with the quotes, which is what
  211. I would expect.
  212.  
  213. Second, if the first line of code is a preprocessor directive, it is
  214. indented, so that it lines up with main().  Subsequent directives are
  215. against the left margin.
  216.  
  217. I don't want to call these bugs since I don't know if what I'm seeing
  218. is what you intended or not.  I am testing this on a Sun 3/60 running
  219. Mach (4.3 BSD superset), using TeX 2.9 (generated by web2c).  I can
  220. also test on Vaxen and IBM RT's, but have not done so yet.  I'm
  221. willing to help out with this any way I can as long as I don't get too
  222. sidetracked from my regular work.  Thanks for your help.
  223.  
  224. /cap
  225.  
  226. From nr Tue Jan 24 12:41:32 1989
  227. Received: by notecnirp.Princeton.EDU (5.51/1.68)
  228.     id AA24196; Tue, 24 Jan 89 12:41:30 EST
  229. Date: Tue, 24 Jan 89 12:41:30 EST
  230. From: nr (Norman Ramsey)
  231. Message-Id: <8901241741.AA24196@notecnirp.Princeton.EDU>
  232. To: cap.cs.cmu.edu
  233. Subject: Bugs
  234. Cc: nr
  235. Status: RO
  236.  
  237. > I would be more than happy to help beta test Spider.  I think it is a
  238. > wonderful idea that seems very well implimented.  
  239.  
  240. I'm glad you think so.  I myself have some dissatisfactions with the
  241. implementation, especially with the webkernel macros.  I hope to have
  242. time to work them out this summer.
  243.  
  244. > I installed the
  245. > webkernel you sent me (thanks), and it fixed most problems I was
  246. > having.  However, when ceeweave->TeX comes across something like,
  247. >     @u
  248. >     #include <stdio.h>
  249. >     #include <fcntl.h>
  250. >     #include "myinclude.h"
  251. >     main()
  252. > things happen that I wouldn't expect.  First, the filenames in angle
  253. > brackets get set in italics without the brackets.  I wouldn't expect
  254. > this because it looks like c.spider has code to recognize and put in
  255. > brackets.  "myinclude.h" is set in \tt with the quotes, which is what
  256. > I would expect.
  257.  
  258. You found a bug in c.spider, which I have fixed.  Generally, the way
  259. to detect such a bug is to put an @2 in a very small test program, and
  260. then look at the resulting diagnostic output.  The numbers are numbers
  261. of productions (from productions.list).  Anyway I changed the
  262. following production so that it wouldn't swallow the angle brackets:: 
  263.  
  264.     preproc !(less|lesssimp|backslash|newline) --> preproc
  265.  
  266.  
  267. > Second, if the first line of code is a preprocessor directive, it is
  268. > indented, so that it lines up with main().  Subsequent directives are
  269. > against the left margin.
  270.  
  271. A bug in Knuth's unfathomable macros.  I have hacked webkernel and
  272. just hope I haven't broken anything else.
  273.  
  274. > I don't want to call these bugs since I don't know if what I'm seeing
  275. > is what you intended or not.
  276.  
  277. Not.  I think my only nonstandard prettyprinting is of (old-style)
  278. parameter declarations.
  279.  
  280. >  I am testing this on a Sun 3/60 running
  281. > Mach (4.3 BSD superset), using TeX 2.9 (generated by web2c).  I can
  282. > also test on Vaxen and IBM RT's, but have not done so yet.  
  283.  
  284. You will have trouble using the makefiles on other machines---I
  285. unknowingly used some features specific to Sun make (the @#$(&% man
  286. page didn't say `warning, not portable'), so things like `make boot'
  287. and `make distribution' may not work right.  But `make weave' and
  288. `make tangle' work fine on a VAX running BSD4.3.
  289.  
  290. > I'm
  291. > willing to help out with this any way I can as long as I don't get too
  292. > sidetracked from my regular work.  Thanks for your help.
  293.  
  294. I'm looking for a guinea pig to try to write a Spider file for ANSI C.
  295. Be aware that C is by far the most complicated language to prettyprint
  296. (of the ones in the distribution).
  297.  
  298. Norman
  299.  
  300. From crm@summanulla.mc.duke.edu Fri Apr  7 21:29:18 1989
  301. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  302.     id AA14862; Fri, 7 Apr 89 21:29:16 EDT
  303. Received: from duke.cs.duke.edu by Princeton.EDU (5.58+++/2.6)
  304.     id AA02957; Fri, 7 Apr 89 21:29:01 EDT
  305. Received: from summanulla.mc.duke.edu by duke.cs.duke.edu (5.59/DUKE/08-19-88)
  306.     id AA01720; Fri, 7 Apr 89 21:31:47 EDT
  307. Received: by summanulla.mc.duke.edu (3.2/DUKE/3-1-88)
  308.     id AA08029; Fri, 7 Apr 89 18:22:28 EDT
  309. Date: Fri, 7 Apr 89 18:22:28 EDT
  310. From: Charles R. Martin <crm@summanulla.mc.duke.edu>
  311. Message-Id: <8904072222.AA08029@summanulla.mc.duke.edu>
  312. To: nr@Princeton.EDU
  313. Cc: crm@summanulla.mc.duke.edu
  314. Subject: Spiders, eeek!
  315. Status: RO
  316.  
  317. I got Spider over the wires a little while ago; I'm quite excited about
  318. it, but I've had a little bit of trouble with the installation:
  319.  
  320. (1) I set up a cputype to echo sun3; when I do this, it creates a
  321. subdirectory sun3 of master, and attempts to compile from there.
  322. unfortunately, the objects aren't there, and so the compilation fails.
  323.  
  324. (2) compiling the Dijkstra version given a C compile error, with
  325. duplicate labels in a case statement.
  326.  
  327. Sorry that I haven't gotten all the details of this, but its Friday
  328. afternoon. 
  329.  
  330. The compilation record of the dijkstra version is appended below for
  331. your convenience, if that's the word.
  332.  
  333. echo "date" `date` | cat - d.spider | awk -f /usr/nbsr/crm/Spider/master/spider.awk
  334. Warning: numeric constants and strings are identified in this WEAVE.
  335. Warning: TeX strings have the same category as  numeric constants in this WEAVE.
  336. You used 3 translation keywords.
  337. You defined 18 reserved words of 12 ilks.
  338. You used 15 different categories in 14 productions.
  339. The biggest production had 3 scraps on its left-hand side.
  340. cat /usr/nbsr/crm/Spider/master/transcheck.list trans_keys.unsorted | awk -f /usr/nbsr/crm/Spider/master/transcheck.awk
  341. awk -f /usr/nbsr/crm/Spider/master/cycle.awk < cycle.test
  342. There can't possibly be a cycle in the graph
  343. sort *.unsorted | awk -f /usr/nbsr/crm/Spider/master/nodups.awk
  344. mv *web.tex /usr/nbsr/crm/lib/tex
  345. /bin/rm -f tangle.web
  346. ln /usr/nbsr/crm/Spider/master/tangle.web tangle.web
  347. ceetangle -I/usr/nbsr/crm/Spider/master tangle
  348. This is C TANGLE (generated at 6:13 PM on April 7, 1989)
  349. *1*14*21*25*34*62*64*84*92*107*131*141
  350. Writing the output files: (tangle.c).....500.....1000.....1500
  351. Done.
  352. (No errors were found.)
  353. cc -DDEBUG -g -DSTAT -c tangle.c
  354. "tangle.web", line 838: duplicate case in switch, 10
  355. *** Error code 1
  356.  
  357. Stop.
  358. *** Error code 1
  359.  
  360. From nr Sun Apr  9 22:24:29 1989
  361. Received: by notecnirp.Princeton.EDU (5.51/1.81)
  362.     id AA04177; Sun, 9 Apr 89 22:24:06 EDT
  363. Date: Sun, 9 Apr 89 22:24:06 EDT
  364. From: nr (Norman Ramsey)
  365. Message-Id: <8904100224.AA04177@notecnirp.Princeton.EDU>
  366. To: crm@summanulla.mc.duke.edu
  367. Subject: Re:  Spiders, eeek!
  368. Cc: nr
  369. Status: RO
  370.  
  371.     From crm@summanulla.mc.duke.edu Sat Apr  8 20:31:56 1989
  372.     Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  373.         id AA10629; Sat, 8 Apr 89 20:31:53 EDT
  374.     Received: from duke.cs.duke.edu by Princeton.EDU (5.58+++/2.6)
  375.         id AA28812; Sat, 8 Apr 89 20:31:39 EDT
  376.     Received: from summanulla.mc.duke.edu by duke.cs.duke.edu (5.59/DUKE/08-19-88)
  377.         id AA17447; Sat, 8 Apr 89 20:34:46 EDT
  378.     Received: by summanulla.mc.duke.edu (3.2/DUKE/3-1-88)
  379.         id AA09036; Sat, 8 Apr 89 20:31:21 EDT
  380.     Date: Sat, 8 Apr 89 20:31:21 EDT
  381.     From: Charles R. Martin <crm@summanulla.mc.duke.edu>
  382.     Message-Id: <8904090031.AA09036@summanulla.mc.duke.edu>
  383.     To: nr@Princeton.EDU
  384.     In-Reply-To: <8904081713.AA03350@notecnirp.Princeton.EDU> "nr@Princeton.EDU"
  385.     Subject:  Spiders, eeek!
  386.     
  387.     Got the patches, thanks.  They appear to be compiling fine, although
  388.     I've uncovered another minor bug in the makefile: when you make clean,
  389.     it mashes c/tangle.c and awk/tangle.c, which are needed for compilation.
  390.     
  391.     I'll look into the dijkstra thing first of next week.
  392.     
  393.     Thanks again!
  394.     
  395. That is a Feature.  If you've lost them you should be able to get them back
  396. using `make source'.  (Once you've done a `make boot', of course.)
  397.  
  398. Norman
  399.  
  400. PS Dijkstra compiles for me now.
  401.  
  402. From crm@harahan.mc.duke.edu Mon Apr 10 10:19:15 1989
  403. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  404.     id AA15358; Mon, 10 Apr 89 10:19:13 EDT
  405. Received: from duke.cs.duke.edu by Princeton.EDU (5.58+++/2.6)
  406.     id AA10282; Mon, 10 Apr 89 10:18:38 EDT
  407. Received: from nbsrws9.mc.duke.edu by duke.cs.duke.edu (5.59/DUKE/08-19-88)
  408.     id AA24403; Mon, 10 Apr 89 10:21:33 EDT
  409. Received: by harahan.mc.duke.edu (3.2/DUKE/3-1-88)
  410.     id AA02511; Mon, 10 Apr 89 10:18:08 EDT
  411. Date: Mon, 10 Apr 89 10:18:08 EDT
  412. From: Charles R. Martin <crm@harahan.mc.duke.edu>
  413. Message-Id: <8904101418.AA02511@harahan.mc.duke.edu>
  414. To: nr@Princeton.EDU
  415. In-Reply-To: <8904100224.AA04177@notecnirp.Princeton.EDU> "nr@Princeton.EDU"
  416. Subject:  Spiders, eeek!
  417. Status: RO
  418.  
  419.    Date: Sun, 9 Apr 89 22:24:06 EDT
  420.    From: nr@Princeton.EDU (Norman Ramsey)
  421.  
  422.        From crm@summanulla.mc.duke.edu Sat Apr  8 20:31:56 1989
  423.        Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  424.            id AA10629; Sat, 8 Apr 89 20:31:53 EDT
  425.        Received: from duke.cs.duke.edu by Princeton.EDU (5.58+++/2.6)
  426.            id AA28812; Sat, 8 Apr 89 20:31:39 EDT
  427.        Received: from summanulla.mc.duke.edu by duke.cs.duke.edu (5.59/DUKE/08-19-88)
  428.            id AA17447; Sat, 8 Apr 89 20:34:46 EDT
  429.        Received: by summanulla.mc.duke.edu (3.2/DUKE/3-1-88)
  430.            id AA09036; Sat, 8 Apr 89 20:31:21 EDT
  431.        Date: Sat, 8 Apr 89 20:31:21 EDT
  432.        From: Charles R. Martin <crm@summanulla.mc.duke.edu>
  433.        Message-Id: <8904090031.AA09036@summanulla.mc.duke.edu>
  434.        To: nr@Princeton.EDU
  435.        In-Reply-To: <8904081713.AA03350@notecnirp.Princeton.EDU> "nr@Princeton.EDU"
  436.        Subject:  Spiders, eeek!
  437.  
  438.        Got the patches, thanks.  They appear to be compiling fine, although
  439.        I've uncovered another minor bug in the makefile: when you make clean,
  440.        it mashes c/tangle.c and awk/tangle.c, which are needed for compilation.
  441.  
  442.        I'll look into the dijkstra thing first of next week.
  443.  
  444.        Thanks again!
  445.  
  446.    That is a Feature.  If you've lost them you should be able to get them back
  447.    using `make source'.  (Once you've done a `make boot', of course.)
  448.  
  449. Uh, I think one of us doesn't understand.  I do make clean then make
  450. boot, and get an error.  I have to recover c/tangle.c and awk/tangle.c
  451. from the tar file to get it to work.
  452.  
  453. Oh, wait -- I see.  Now that I've got ceetangle, I can make source and
  454. get tangle.c.  Okay, in that case, how about having a make veryclean
  455. that really cleans up everything, and have make clean make a
  456. re-'make-boot'-able  state?  It is, however, a style question rather
  457. than a function question at that point.
  458.  
  459.    Norman
  460.  
  461.    PS Dijkstra compiles for me now.
  462.  
  463. Thanks, me too.  I haven't had a chance to look at the results, but it
  464. does compile.  (If I could only preview dvi files through my PC at home
  465. as I do through my 3/60 at work....)
  466.  
  467. Thanks again,
  468.  
  469. Charlie Martin (...!mcnc!duke!crm, crm@summanulla.mc.duke.edu)
  470. NBSR/Box 3709/Duke University Medical Center/Durham, NC 27710
  471.  
  472. From chase@orc.olivetti.com Mon Apr 10 12:31:21 1989
  473. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  474.     id AA21577; Mon, 10 Apr 89 12:31:20 EDT
  475. Received: from NET.BIO.NET by Princeton.EDU (5.58+++/2.6)
  476.     id AA14387; Mon, 10 Apr 89 12:31:02 EDT
  477. Received: from orc.olivetti.com by net.bio.net (5.61/1.15) with UUCP 
  478.     id AA28032; Mon, 10 Apr 89 09:30:25 -0700
  479. Received: from ozona.orc.olivetti.com by orc.olivetti.com (3.2/SMI-3.2)
  480.     id AA02330; Mon, 10 Apr 89 09:19:46 PDT
  481. Received: by ozona.orc.olivetti.com (3.2/SMI-3.2)
  482.     id AA02170; Mon, 10 Apr 89 09:29:22 PDT
  483. From: chase@orc.olivetti.com (David Chase)
  484. Message-Id: <8904101629.AA02170@ozona.orc.olivetti.com>
  485. To: nr@Princeton.EDU (Norman Ramsey)
  486. Reply-To: David Chase <chase@orc.olivetti.com>
  487. Subject: Re: "cputype?" 
  488. In-Reply-To: Your message of Thu, 06 Apr 89 20:11:36 -0400.
  489.              <8904070011.AA05087@notecnirp.Princeton.EDU> 
  490. Date: Mon, 10 Apr 89 09:29:18 -0700
  491. Status: RO
  492.  
  493.  
  494. >> invoked as "make" never get executed.  Try "./make" instead.
  495.  
  496. >I don't see a clean way to fix this.  Are any files affected besides
  497. WEBROOT/Makefile?  The problem is that some of the calls to $(MAKE)
  498. are calls to shell scripts in subdirectories, while others are calls
  499. to /bin/make in the current directory.  What have you done to improve
  500. things?
  501.  
  502. It seemed to compile after I changed Makefile in the top-level
  503. directory to say "./make", but I just now tried a "make -n clean"
  504. and found a few missing things.  I'd suggest that in the case where
  505. you want "make" to mean "/bin/make" that you just drop in a shell
  506. script along the lines of
  507.  
  508.   /bin/make $*
  509.  
  510. There's a fair chance that I'll be able to translate Pascal into
  511. Modula-3 with a little assistance.  Another worthy project would
  512. be to get a dialect of Pascal output more acceptable to the
  513. brain-dead Pascal compilers used on Olivetti machines.
  514.  
  515. David
  516.  
  517. From simpson%trwarcadia.UUCP@oberon.usc.edu Mon Apr 10 14:16:57 1989
  518. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  519.     id AA07529; Mon, 10 Apr 89 14:16:53 EDT
  520. Received: from OBERON.USC.EDU by Princeton.EDU (5.58+++/2.6)
  521.     id AA17855; Mon, 10 Apr 89 14:16:35 EDT
  522. Received: by oberon.usc.edu (5.59/5.5) id AA01417; 
  523.     Mon, 10 Apr 89 11:15:42 PST
  524. Received: from localhost by trwarcadia.uucp (3.2/SMI-3.2)
  525.     id AA22106; Mon, 10 Apr 89 10:55:03 PDT
  526. Message-Id: <8904101755.AA22106@trwarcadia.uucp>
  527. To: nr@Princeton.EDU
  528. Subject: Figure 2 of "Building a Language-Independent WEB"
  529. Date: Mon, 10 Apr 89 10:55:00 -0700
  530. From: Scott Simpson <simpson%trwarcadia.UUCP@oberon.usc.edu>
  531. Status: RO
  532.  
  533. I believe the line coming into xtangle.c from the right should be labeled
  534. CTANGLE, not CWEAVE.
  535.         Scott Simpson, TRW
  536.  
  537. From nr Tue Apr 11 14:13:27 1989
  538. Received: by notecnirp.Princeton.EDU (5.51/1.81)
  539.     id AA11976; Tue, 11 Apr 89 14:12:49 EDT
  540. Date: Tue, 11 Apr 89 14:12:49 EDT
  541. From: nr (Norman Ramsey)
  542. Message-Id: <8904111812.AA11976@notecnirp.Princeton.EDU>
  543. To: mackay@june.cs.washington.edu
  544. Subject: Re:  spiderweb copyright (last time??)
  545. Cc: nr
  546. Status: RO
  547.  
  548. > One last clarification.  The question is bound to come up, especially
  549. > from the Japanese, who are very sensitive about this.  
  550. > 1.    Is it within your intentions in copyrighting this that a firm
  551. >    might develop proprietary software which in no way incorporates
  552. >    any part of spiderweb, but simply uses spiderweb as a development
  553. >    tool for internal documentation.  
  554. > 2.    What about the proprietary publication of documented source
  555. >    which was produced with one of the language versions of spiderweb?
  556. >    (Again with the understanding that no part of spiderweb is included
  557. >    in that documentation.)
  558.  
  559. I personally would be happy with either of these uses of spiderweb,
  560. but the decision is not entirely up to me.  Spiderweb was developed
  561. partly with government contract money, and is agreed to be released
  562. ``for research purposes only'' (whatever that means).  I will have to
  563. look into this and get back to you.
  564.  
  565. > -------------------------------------------------------------------------
  566. > Now for some first impressions.  
  567. > You have already supplied the explanation of how to get around `cputype`
  568. > in the new version (which I picked up yesterday).
  569.  
  570. Yes, this was a late-breaking compromise to deal with the heterogenous
  571. processor environment here at Princeton.  I hate it, but it seems to
  572. get the job done.
  573. > In WebMakefile, the target boot: does not move the *.o files
  574. > to the appropriate directory, they remain in the master directory.
  575.  
  576. Someone else found that too.  I have patched the Makefile and added
  577. some comments.  I will send you patches.  In the process, I broke the
  578. Makefile to remove some of the sources.  I think I have fixed that
  579. now, but for about a day a bad version was on princeton.edu
  580. > The weave output from ceetangle comes out perfectly, but the
  581. > weave output from weave runs into problems when it includes grammar.web
  582. >        @ Here is where we define |highestposoverall| and where we
  583. >        check the productions.
  584. >        @d highestposoverall = 6
  585. >        @<Test for all of the productions@>=
  586. >        if ((1) &&
  587. >                (pp+1)->cat==SP_ignore_scrap) {
  588. >            /* 1: {\tt ? ignore_scrap --> #1} */
  589. > This goes fine until it hits the comment line
  590. >            /* 1: {\tt ? ignore_scrap --> #1} */
  591. > but then TeX is bothered by the _ and the #.
  592. > What is needed is some sort of \ttverbatim after the {, and possibly an
  593. > \endttverbatim before the } (I seem to remember that it can be
  594. > difficult to get \ttverbatim to turn itself off when it drops to
  595. > a lower level out of {} braces, but perhaps, since you are only
  596. > dealing with one-line comments and there are no embedded newlines
  597. > to be formatted, the difficulty can be got around.)
  598.  
  599. Actually a \ttverbatim kind of solution won't work, because
  600. \ttverbatim needs to be able to change the catcodes, and they can't be
  601. changed at that late date because the whole affair is an argument to
  602. another macro, and the characeters have already been gobbled up (or
  603. whatever the appropriate parts of TeX's anatomy that sets catcodes).
  604. I have changed spider.web so the offending characters are escaped with
  605. backslashes:  {\tt ? ignore\_scrap --> \#1} and so on.
  606.  
  607. > The tangle for C seems to run with very satisfactory speed.  
  608.  
  609. We have Don Knuth to thank for this.  The lexer sees the code just
  610. once, and then converts everything to either eight or sixteen bit
  611. tokens.  Output is very fast.
  612.  
  613. I would like to speed up WEAVE some day, by making it run from a table
  614. (decision tree).  Doing that and abandoning the internal conversion to
  615. ASCII would probably gain a factor of three.
  616.  
  617. > Query?  How does the Make variable $(SPIDER) with the equivalent
  618. > any.spider get changed into the appropriate *.spider.  It works, but
  619. > I can't figure out how it works.  Does "any" have some esoteric meaning
  620. > to make?
  621.  
  622. This was a horrendous hack to be able to make many different WEBs
  623. while keeping only one Makefile around.  The three magic names
  624. $(THETANGLE), $(THEWEAVE), and $(SPIDER) are all expected to be set on
  625. the command line.  (Perhaps I shouldn't set them at all inside
  626. WebMakefile.)  Look at ./c/make and you'll see how it works.
  627.  
  628.  
  629. I am sending you a list of bugs so far and patches for them, under
  630. separate cover, via tarmail.
  631.  
  632. Norman
  633.  
  634. From intvax!drstrip@unmvax.cs.unm.edu Tue Apr 11 12:02:41 1989
  635. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  636.     id AA02118; Tue, 11 Apr 89 12:02:39 EDT
  637. Received: from unmvax.cs.unm.edu by Princeton.EDU (5.58+++/2.6)
  638.     id AA21790; Tue, 11 Apr 89 12:02:30 EDT
  639. Received: from intvax.UUCP by unmvax.cs.unm.edu (5.61/3.1) with UUCP
  640.     id <AA17499@unmvax.cs.unm.edu>; Tue, 11 Apr 89 08:57:53 -0700
  641. From: intvax!drstrip@unmvax.cs.unm.edu
  642. Received: by intvax.LOCAL on Tue, 11 Apr 89 09:58:18 mdt
  643. Date: Tue, 11 Apr 89 09:58:18 mdt
  644. Message-Id: <8904111558.AA10373@intvax.LOCAL>
  645. To: unmvax!nr@Princeton.EDU
  646. Subject: spider
  647. Status: RO
  648.  
  649. I was finally able to ftp the spider files. It was just a slow connection
  650. that was fooling me. The webkernal file appears to have an extra carriage
  651. return right after the "?" in the comment before you define a verbatim macro.
  652. Also, in spiderwebman (I like that, also the ref. to Stan Lee), there is an
  653. endnewstuff missing after the section on macros. (A lot is commented out in
  654. the section, although not the endnewstuff, which just seems to be missing.)
  655. Thanks for the contriution. I'll let you know if I apply it.
  656. Strip
  657.  
  658. From ramsdell@linus.MITRE.ORG Mon Jun  5 15:02:30 1989
  659. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  660.     id AA01963; Mon, 5 Jun 89 15:02:27 EDT
  661. Received: from MBUNIX.MITRE.ORG by Princeton.EDU (5.58+++/2.17)
  662.     id AA28417; Mon, 5 Jun 89 15:01:58 EDT
  663. Posted-From: The MITRE Corp., Bedford, MA
  664. X-Alternate-Route: user%node@mbunix.mitre.org
  665. Return-Path: <ramsdell@linus.MITRE.ORG>
  666. Received: from huxley.mitre.org by linus.MITRE.ORG (5.59/RCF-3S)
  667.     id AA20583; Mon, 5 Jun 89 14:59:51 EDT
  668. Posted-Date: Mon, 5 Jun 89 15:00:16 EDT
  669. Received: by huxley.mitre.org (4.0/RCF-4C)
  670.     id AA11117; Mon, 5 Jun 89 15:00:16 EDT
  671. Date: Mon, 5 Jun 89 15:00:16 EDT
  672. From: ramsdell@linus.MITRE.ORG
  673. Message-Id: <8906051900.AA11117@huxley.mitre.org>
  674. To: nr@Princeton.EDU
  675. Subject: Spidery Scheme
  676. Reply-To: ramsdell@MDF.mitre.org
  677. Status: RO
  678.  
  679. I was playing with the idea of generating WEB for Scheme.  There are
  680. many problem, especially the fact that Scheme users like a pretty
  681. printed format that seems not generatable by WEB's algorithm.  While I
  682. was playing, I found two bugs.
  683.  
  684. (1) In WebMakefile: the make command makes common.o and pathopen.o
  685. even if they exist.
  686.  
  687. huxley% make
  688. cc -DDEBUG -g -DSTAT -c /usr/src/local/tex/mitre/Spiderweb/master/common.c
  689. mv common.o /usr/src/local/tex/mitre/Spiderweb/master/`arch`
  690. cc -DDEBUG -g -DSTAT -c /usr/src/local/tex/mitre/Spiderweb/master/pathopen.c
  691. mv pathopen.o /usr/src/local/tex/mitre/Spiderweb/master/`arch`
  692. echo "date" `date` | cat - scheme.spider | awk -f /usr/src/local/tex/mitre/Spiderweb/master/spider.awk
  693. Warning: numeric constants and strings are identified in this WEAVE.
  694. awk: tokentest is not an array
  695.  record number 30
  696. *** Error code 2
  697. make: Fatal error: Command failed for target `grammar.web'
  698.  
  699. (2) Spider.awk fails as input to GNU's version of make:
  700.  
  701. huxley% echo "date" `date` | cat - scheme.spider | gawk -f /usr/src/local/tex/mitre/Spiderweb/master/spider.awk
  702. gawk:  syntax error near line 1221:
  703. temp=sprintf"strncmp("%s",loc-1,%d)==0=0",$2,length($2)
  704.  
  705.  
  706.                                            ^ parse error
  707.  
  708. The problem is gawk's sprintf expects a parenthesized argument list.
  709. Using gawk is prefered because the error messages are better an Sun
  710. awk does not always run spider.awk correctly.  The input file 
  711.  
  712. scheme.spider:
  713. -------------
  714. ## A very broken attempt at scheme.
  715.  
  716. language Scheme extension scm
  717.  
  718. module definition exp use exp
  719. # use as stmt is unavoidable since tangle introduces line breaks
  720.  
  721. comment begin <";"> end newline
  722.  
  723. line begin <";"-space-"line"> end <"">
  724.  
  725. default translation <*> mathness no
  726.  
  727. # identifiers are wrong -- no hope here.
  728. token identifier category exp mathness yes
  729. token number category exp mathness yes
  730. token newline category newline translation <> mathness no
  731. token pseudo_semi category semi mathness maybe translation <"\\relax">
  732.  
  733. semi <force> --> exp
  734.  
  735. token ( category open
  736. token ) category close
  737. #token . category binop translation <".\\,"-opt-3>
  738.  
  739. open exp --> call
  740. call exp --> call
  741. call close --> exp
  742.  
  743. #newline --> ignore_scrap
  744.  
  745. ? ignore_scrap --> #1
  746.  
  747. -------------------
  748.  
  749. gives this output: (all is okay using gawk)
  750.  
  751. huxley% echo "date" `date` | cat - scheme.spider | awk -f /usr/src/local/tex/mitre/Spiderweb/master/spider.awk
  752. Warning: numeric constants and strings are identified in this WEAVE.
  753. awk: tokentest is not an array
  754.  record number 27
  755.  
  756. ---------------------
  757.  
  758. Thank you for making your software available.  I like Levy's CWEB and
  759. am looking forward to using your version of CWEB.
  760. John
  761.  
  762.  
  763.  
  764. From kademan@stat.wisc.edu Thu Jun  8 15:30:58 1989
  765. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  766.     id AA12073; Thu, 8 Jun 89 15:30:56 EDT
  767. Received: from bayes.stat.wisc.edu by Princeton.EDU (5.58+++/2.17)
  768.     id AA00826; Thu, 8 Jun 89 15:30:47 EDT
  769. Date: Thu, 8 Jun 89 14:28:47 CDT
  770. From: kademan@stat.wisc.edu (Ed Kademan)
  771. Message-Id: <8906081928.AA16941@bayes.stat.wisc.edu>
  772. Received: by bayes.stat.wisc.edu; Thu, 8 Jun 89 14:28:47 CDT
  773. To: nr@Princeton.EDU
  774. Subject: spiderweb bug report
  775. Status: RO
  776.  
  777. In case you haven't heard of this one yet, two of the line directives in
  778. the file WEBROOT/master/common.c did not have any space between the number
  779. and the file name string.  GNU C would not compile it as a result.  The
  780. lines were numbers 168 and 170 I believe:
  781. ----------------------------------------------------------------------
  782. #line 187"/u/nr/src/web/master/pathopen.web"
  783.  
  784. #line 188"/u/nr/src/web/master/pathopen.web"
  785. ----------------------------------------------------------------------
  786. ===> Bundled 11 Apr 89; all bugs into patches/003
  787.  
  788. From nr Sat Jun 17 11:02:26 1989
  789. Received: by notecnirp.Princeton.EDU (5.51/1.81)
  790.     id AA00234; Sat, 17 Jun 89 11:02:25 EDT
  791. Date: Sat, 17 Jun 89 11:02:25 EDT
  792. From: nr (Norman Ramsey)
  793. Message-Id: <8906171502.AA00234@notecnirp.Princeton.EDU>
  794. To: ramsdell@linus.MITRE.ORG
  795. Subject: Re:  Spidery Scheme
  796. Cc: nr
  797. Status: RO
  798.  
  799. > From ramsdell@linus.MITRE.ORG Mon Jun  5 15:02:30 1989
  800. > I was playing with the idea of generating WEB for Scheme.  There are
  801. > many problem, especially the fact that Scheme users like a pretty
  802. > printed format that seems not generatable by WEB's algorithm.  
  803.  
  804. What is the difficulty?  Are there some lexical elements that WEB
  805. can't recognize, or does one need semantic information to prettyprint
  806. Scheme?  I have only a nodding acquaintance with Lisp and know even
  807. less about Scheme, but I shouldn't have expected too much difficulty.
  808.  
  809. > While I
  810. > was playing, I found two bugs.
  811. > (1) In WebMakefile: the make command makes common.o and pathopen.o
  812. > even if they exist.
  813. > huxley% make
  814. > cc -DDEBUG -g -DSTAT -c /usr/src/local/tex/mitre/Spiderweb/master/common.c
  815. > mv common.o /usr/src/local/tex/mitre/Spiderweb/master/`arch`
  816. > cc -DDEBUG -g -DSTAT -c /usr/src/local/tex/mitre/Spiderweb/master/pathopen.c
  817. > mv pathopen.o /usr/src/local/tex/mitre/Spiderweb/master/`arch`
  818. > echo "date" `date` | cat - scheme.spider | awk -f /usr/src/local/tex/mitre/Spiderweb/master/spider.awk
  819. > Warning: numeric constants and strings are identified in this WEAVE.
  820. > awk: tokentest is not an array
  821. >  record number 30
  822. > *** Error code 2
  823. > make: Fatal error: Command failed for target `grammar.web'
  824.  
  825.  
  826. The problem is in your use of `arch` and exposes a flaw in make.  Make
  827. is looking for a file common.o in a directory `arch` and not finding
  828. it, so it makes the target.  You can cure the problem by replacing
  829. `arch` with $(ARCH) in the Makefile and using ARCH=`arch` in the make
  830. script that calls /bin/make.  I don't know of anything better.
  831.  
  832.  
  833. > (2) Spider.awk fails as input to GNU's version of make:
  834. > huxley% echo "date" `date` | cat - scheme.spider | gawk -f /usr/src/local/tex/mitre/Spiderweb/master/spider.awk
  835. > gawk:  syntax error near line 1221:
  836. > temp=sprintf"strncmp("%s",loc-1,%d)==0=0",$2,length($2)
  837. >                                            ^ parse error
  838. > The problem is gawk's sprintf expects a parenthesized argument list.
  839. > Using gawk is prefered because the error messages are better an Sun
  840. > awk does not always run spider.awk correctly.  
  841.  
  842. I am reluctant to move to gawk because in the past I have found it
  843. buggy and unstable.  BSD awk is buggy but at least is stable.
  844. Spider.awk contains a number of workarounds.  I will look into the
  845. tokentest problem.
  846.  
  847. > Thank you for making your software available.  I like Levy's CWEB and
  848. > am looking forward to using your version of CWEB.
  849. > John
  850.  
  851. I'm glad to hear it.  Sorry I took so long getting back to you; I've
  852. been out of town and things piled up while I was away.
  853.  
  854. Norman
  855.  
  856. From nr Sat Jun 17 11:08:01 1989
  857. Received: by notecnirp.Princeton.EDU (5.51/1.81)
  858.     id AA00397; Sat, 17 Jun 89 11:07:51 EDT
  859. Date: Sat, 17 Jun 89 11:07:51 EDT
  860. From: nr (Norman Ramsey)
  861. Message-Id: <8906171507.AA00397@notecnirp.Princeton.EDU>
  862. To: kademan@stat.wisc.edu
  863. Subject: Re:  spiderweb bug report
  864. Cc: nr
  865. Status: RO
  866.  
  867. I haven't heard of this one yet; thanks for the report.  The problem is that
  868. TANGLE tries to be clever about removing ``unnecessary'' spaces from its input.
  869. The lines you found were from a .h file that was @included.  Since I'm spending
  870. my time writing new literate programming tools, I'm not going to attempt to fix
  871. it.  You can work around it by running the code through a sed script:
  872.     /^#line/s/"/ "/
  873.  
  874. Good luck.
  875.  
  876. Norman
  877.     From kademan@stat.wisc.edu Thu Jun  8 15:30:58 1989
  878.     Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  879.         id AA12073; Thu, 8 Jun 89 15:30:56 EDT
  880.     Received: from bayes.stat.wisc.edu by Princeton.EDU (5.58+++/2.17)
  881.         id AA00826; Thu, 8 Jun 89 15:30:47 EDT
  882.     Date: Thu, 8 Jun 89 14:28:47 CDT
  883.     From: kademan@stat.wisc.edu (Ed Kademan)
  884.     Message-Id: <8906081928.AA16941@bayes.stat.wisc.edu>
  885.     Received: by bayes.stat.wisc.edu; Thu, 8 Jun 89 14:28:47 CDT
  886.     To: nr@Princeton.EDU
  887.     Subject: spiderweb bug report
  888.     Status: RO
  889.     
  890.     In case you haven't heard of this one yet, two of the line directives in
  891.     the file WEBROOT/master/common.c did not have any space between the number
  892.     and the file name string.  GNU C would not compile it as a result.  The
  893.     lines were numbers 168 and 170 I believe:
  894.     ----------------------------------------------------------------------
  895.     #line 187"/u/nr/src/web/master/pathopen.web"
  896.     
  897.     #line 188"/u/nr/src/web/master/pathopen.web"
  898.     ----------------------------------------------------------------------
  899.     ===> Bundled 11 Apr 89; all bugs into patches/003
  900.     
  901.  
  902. From kademan@stat.wisc.edu Mon Jun 26 07:17:06 1989
  903. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  904.     id AA14563; Mon, 26 Jun 89 07:17:05 EDT
  905. Received: from bayes.stat.wisc.edu by Princeton.EDU (5.58+++/2.17)
  906.     id AA27774; Mon, 26 Jun 89 07:16:24 EDT
  907. Date: Mon, 26 Jun 89 06:14:15 CDT
  908. From: kademan@stat.wisc.edu (Ed Kademan)
  909. Message-Id: <8906261114.AA02589@bayes.stat.wisc.edu>
  910. Received: by bayes.stat.wisc.edu; Mon, 26 Jun 89 06:14:15 CDT
  911. To: nr@Princeton.EDU
  912. Subject: spider bug report
  913. Status: RO
  914.  
  915. ===> Bundled 11 Apr 89; all bugs into patches/003
  916.  
  917. The webkernel.tex file has an \eject command on line 221 right after the
  918. code that sets up an empty page for the first use of the output routine.
  919. As a result the first "page" gets output before the regular macros get a
  920. chance to set mark, and the section number in the first header is null.
  921. Simply deleting that \eject command fixes the problem (and doesn't
  922. introduce any new ones as far as I can tell.)
  923.  
  924. I've been having a good time playing with this spider system, and have
  925. created a web for C++ by tweaking your c.spider file.
  926.  
  927. From matsl@inmic.se Tue May 23 11:11:17 1989
  928. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.81)
  929.     id AA14352; Tue, 23 May 89 11:11:15 EDT
  930. Received: from [192.36.125.2] by Princeton.EDU (5.58+++/2.13)
  931.     id AA28056; Tue, 23 May 89 11:11:01 EDT
  932. Received: from inmic.se by sunic.sunet.se (5.61+IDA/KTH/LTH/1.53)
  933.     id AAsunic04212; Tue, 23 May 89 17:11:18 +0200
  934. Received: from haf2.inmic.se (ha2) by nmpcad.inmic.se (dec-1.2/3.0)
  935.     id AA14700; Tue, 23 May 89 17:08:19 -0200
  936. Received: by haf2.inmic.se (hp-13.1/3.0)
  937.     id AA16364; Tue, 23 May 89 17:10:39 met
  938. Date: Tue, 23 May 89 17:10:39 met
  939. From: Mats Lidell  <matsl@inmic.se>
  940. Message-Id: <8905231510.AA16364@haf2.inmic.se>
  941. To: nr@Princeton.EDU
  942. In-Reply-To: Norman Ramsey's message of Mon, 22 May 89 11:18:05 EDT <8905221518.AA03626@notecnirp.Princeton.EDU>
  943. Subject:  Spiderweb
  944. Status: RO
  945.  
  946. Dear Norman,
  947.  
  948. Thanks for your quick and helpful answer. It made me try it once again.
  949.  
  950. > I have only two guesses:
  951. >     -- you are somehow combining Spider with Silvio Levy's CWEB in a way
  952. >         that doesn't work
  953. >     -- you've got a buggy C compiler
  954.  
  955. Quite right. I was combining Spider with Silvio Levy's CWEB. See note
  956. below.
  957.  
  958. > Please let me know more if you can, or at least tell me how big your
  959. > tangle.c is, so I can tell if it makes sense.
  960.  
  961. This time I tried to follow the instructions real hard and it worked!
  962. But I had some small problems.
  963.  
  964. When doing 'make boot' the link of ceetangle and ceeweave tries to get
  965. the common object files from the cputype directory but they are not
  966. there. They are compiled in the master directory! I just removed the
  967. use of the cputype-directory and then it worked!
  968.  
  969. I also managed to destroy the tangle.c file in the master directory
  970. when I typed 'make -p'. Well I shouldn't have done it but away it
  971. went. Then I realised that this was what happened the last time I
  972. tried to make spiderweb and that time I copied ctangle.c from CWEB
  973. just to try it. Stupid me! This time I went back to my copy of the
  974. distribution and got the real ctangle.c! The previous time I didn't
  975. realised that it ever was in the master directory. I though it simply
  976. was missing.
  977.  
  978. The programs are using the 'index' function that's not available on
  979. SYSV. (I'm running HP-UX.) This should be substituted with 'strchr'
  980. since I think that this is now normally available on both SYSV and BSD
  981. systems. (I haven't checked that though! Maybe a macro is safer.) I
  982. found no other system problem.
  983.  
  984. A small error when trying to print out the weave. I haven't tried to
  985. find out why it fails. See output below.
  986.  
  987.     ceeweave -I../master weave.web
  988.     This is C WEAVE (generated at 11:03 AM on May 23, 1989)
  989.     *1*14*28
  990.     ! Illegal use of @ in comment. (l. 363)
  991.     /* identifier =200 or octal @'
  992.                                   310 */ *35*52*65*75*81*84*114*138*150*151*168*188*211*235
  993.     Writing the output file...*1*14*28
  994.     ! Illegal use of @ in comment. (l. 363)
  995.     /* identifier =200 or octal @'
  996.                                   310 */ *35*52*65*75*81*84*114*138*150*151*168*188*211*235
  997.     Writing the index...Done.
  998.     Memory usage statistics: 722 of 3999 names, 2988 of 19999 cross-references,
  999.          9695 of 89999 bytes;
  1000.     Parsing required 822 of 1000(950) scraps, 1736 of 2000(1950) texts,
  1001.          3749 of 20000(19950) tokens, 258 of 399 levels;
  1002.  
  1003.     Sorting required 47 levels
  1004.  
  1005.     (Pardon me, but I think I spotted something wrong.)
  1006.  
  1007.  
  1008. I can't find any collection of the improvements and/or differences you
  1009. have added to your weave and tangle nor can I find any users manual in
  1010. the same way as for CWEB. Well I will start looking through the
  1011. program documentation but if you have anything better I would
  1012. appreciate that.
  1013.  
  1014. Many thanks.
  1015.  
  1016. Yours matsl
  1017. ---
  1018. Mats Lidell
  1019.  Swedish Institute of Microelectronics,  VHDL CAD Tools,
  1020.  PO Box 1084, S-164 21 KISTA, SWEDEN
  1021.  Tel: +46 8 752 11 42    Ttx: 128 75 INMIC S   Fax: +46 8 750 80 56
  1022. Internet: matsl@inmic.se or {uunet,unido,mcvax,ukc,munnari}sunic!inmic.se!matsl
  1023.  
  1024. From campbell@vx2.GBA.NYU.EDU Sat Jul  1 18:34:13 1989
  1025. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.82)
  1026.     id AA13480; Sat, 1 Jul 89 18:34:12 EDT
  1027. Received: from VX2.GBA.NYU.EDU by Princeton.EDU (5.58+++/2.19)
  1028.     id AA22478; Sat, 1 Jul 89 18:34:04 EDT
  1029. Received: by vx2.GBA.NYU.EDU (5.61/1.34)
  1030.     id AA25315; Sat, 1 Jul 89 17:35:25 -0500
  1031. Date: Sat, 1 Jul 89 17:35:25 -0500
  1032. From: campbell@vx2.GBA.NYU.EDU (bruce dietrich-campbell)
  1033. Message-Id: <8907012235.AA25315@vx2.GBA.NYU.EDU>
  1034. To: nr@Princeton.EDU
  1035. Subject: spider installation on 3b1
  1036. Status: RO
  1037.  
  1038. Hi,
  1039.  
  1040. I've just installed spider on my ATT 3b1 (aka UnixPC). Thought you
  1041. might be interested in a few minor changes I had to make.
  1042.  
  1043.     1. In common.c I added the definition
  1044.  
  1045.         #define index strchr
  1046.  
  1047.     since the routine is named differently on SysV machines.
  1048.     I probably should have added a -DUSG compilation flag, but
  1049.     since this was the only dependency ...
  1050.  
  1051.     2. In spider.awk, three sprintf lines were missing the
  1052.     surrounding parentheses:
  1053.  
  1054. 1221c1221
  1055. < temp=sprintf"strncmp(\"%s\",loc-1,%d)==0",$2,length($2)
  1056. ---
  1057. > temp=sprintf("strncmp(\"%s\",loc-1,%d)==0",$2,length($2))
  1058. 1231c1231
  1059. < temp=sprintf"'%s'",$2
  1060. ---
  1061. > temp=sprintf("'%s'",$2)
  1062. 3040c3040
  1063. < temp=sprintf"(pp+%d)->cat",$i-1
  1064. ---
  1065. > temp=sprintf("(pp+%d)->cat",$i-1)
  1066.  
  1067.     This was confusing, since BSD4.3 awk doesn't mind.
  1068.  
  1069.     3. My awk then wouldn't digest c.spider or awk.spider,
  1070.     complaining of an
  1071.  
  1072.         awk : unexpected break, continue or next at record ###
  1073.  
  1074.     where ### was one more than the number of lines in c.spider
  1075.     or awk.spider.  Rather than fight it, I installed gawk2.10
  1076.     and everything went fine. (Note that gawk also burps on
  1077.     the missing parentheses mentioned in 2 above.)
  1078.  
  1079.  
  1080. The last line of BUGS is:
  1081.  
  1082. ===> Bundled 11 Apr 89; all bugs into patches/003
  1083.  
  1084. Cheers!
  1085.  
  1086. .............................................................................
  1087. Bruce Dietrich-Campbell  ARPA:   campbell@vx2.gba.nyu.edu
  1088.                          USENET: ...!{uunet,rocky,harvard}!cmcl2!vx2!campbell
  1089.  
  1090. From purtill@math.mit.edu Thu Jul 20 18:19:07 1989
  1091. Received: from princeton.Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.83)
  1092.     id AA19356; Thu, 20 Jul 89 18:19:05 EDT
  1093. Received: from BOURBAKI.MIT.EDU by Princeton.EDU (5.58+++/2.20)
  1094.     id AA27225; Thu, 20 Jul 89 18:18:47 EDT
  1095. Received: from jacobi.mit.edu by math.mit.edu; Thu, 20 Jul 89 18:18:32 EDT
  1096. Received: by jacobi.mit.edu; Thu, 20 Jul 89 18:18:23 EDT
  1097. Date: Thu, 20 Jul 89 18:18:23 EDT
  1098. From: purtill@math.mit.edu
  1099. Message-Id: <8907202218.AA05761@jacobi.mit.edu>
  1100. To: nr@Princeton.EDU (Norman Ramsey)
  1101. Subject: spider bug(?)
  1102. Status: R
  1103.  
  1104.  
  1105. If foo.web is:
  1106. ----------
  1107. @* Oink.
  1108.  
  1109. @<Oink |#include|s@>=
  1110. #include <oink.h>
  1111. ----------
  1112.  
  1113. Then foo.tex (produced by ceeweave) is:
  1114. ----------
  1115. \input cweb.tex
  1116.  
  1117. \N1.  Oink.
  1118.  
  1119. \Y\P\4\X1:Oink s\X${}\S{}$\par
  1120. \fi
  1121.  
  1122.  
  1123. \inx
  1124. \:\\{include}, 1.
  1125. \:\\{oink}, 1.
  1126. \fin
  1127. \:\X1:Oink s\X
  1128. \con
  1129. ----------
  1130.  
  1131. Notice that the module name which should be "<Oink #includes>"
  1132. cleverly formated ends up being just "<Oink s>".  (Also, I'm no longer
  1133. using gawk!)
  1134.  
  1135. ^.-.^ Mark Purtill        purtill@math.mit.edu  (617)623-6238 - H
  1136. ((")) Dept. of Math, MIT 2-229, Cambridge, MA  02139  (617)253-1589 - O
  1137.  
  1138.  
  1139.  
  1140.  
  1141. From nr Thu Jul 20 18:43:45 1989
  1142. Received: by notecnirp.Princeton.EDU (5.51/1.83)
  1143.     id AA19658; Thu, 20 Jul 89 18:43:44 EDT
  1144. Date: Thu, 20 Jul 89 18:43:44 EDT
  1145. From: nr (Norman Ramsey)
  1146. Message-Id: <8907202243.AA19658@notecnirp.Princeton.EDU>
  1147. To: purtill@math.mit.edu
  1148. Subject: Re:  spider bug(?)
  1149. Cc: nr
  1150. Status: R
  1151.  
  1152. This is a bug.  A production is matching a token that isn't
  1153. there, and for some reason this is making WEAVE drop all its
  1154. text.  I haven't found a quick workaround; you'll have to put
  1155. something else in that title (it needs a newline to terminate 
  1156. the #include, and it can never get one within @<...@>).
  1157.  
  1158. I'll let you know when I get the bug fixed.
  1159.  
  1160. Norman
  1161.  
  1162. From alexande@cs.unc.edu Fri Jan 19 17:52:39 1990
  1163. Received: by cs.Princeton.EDU (5.57/1.98)
  1164.     id AA05330; Fri, 19 Jan 90 17:52:38 EST
  1165. Received: from Princeton.EDU by notecnirp.Princeton.EDU (5.51/1.98)
  1166.     id AA08642; Fri, 19 Jan 90 17:52:10 EST
  1167. Received: from mcnc.mcnc.org by Princeton.EDU (5.58+++/2.29/mailrelay)
  1168.     id AA17810; Fri, 19 Jan 90 17:45:02 EST
  1169. Received: from mercury.cs.unc.edu by mcnc.mcnc.org (5.59/MCNC/5-16-88)
  1170.     id AA21523; Fri, 19 Jan 90 17:43:28 EST
  1171. Received: from dopey.cs.unc.edu by mercury.cs.unc.edu (5.59/UNC/6-17-88)
  1172.     id AA11354; Fri, 19 Jan 90 17:42:24 EST
  1173. Received: by dopey.cs.unc.edu (5.59/UNC/06-13-88)
  1174.     id AA00405; Fri, 19 Jan 90 17:41:01 EST
  1175. Date: Fri, 19 Jan 90 17:41:01 EST
  1176. From: Geoffrey D. Alexander <alexande@cs.unc.edu>
  1177. Message-Id: <9001192241.AA00405@dopey.cs.unc.edu>
  1178. To: nr@Princeton.EDU
  1179. Subject: Problem installing spidery WEB
  1180. Cc: alexande@cs.unc.edu
  1181. Status: RO
  1182.  
  1183. Norman,
  1184.  
  1185. I have run into a problem installing Spidery WEB.  The problem occur when I
  1186. try to run make boot from WEBROOT.  Here is the output produced:
  1187.  
  1188. ===============================================================================
  1189. cd c; make  boot; cd ..
  1190. cd ../master; rm -f *.o; for i in /unc/alexande/spiderweb/master/common.c /unc/alexande/spiderweb/master/pathopen.c; do \
  1191.     cc -DDEBUG -g -DSTAT -c $i; \
  1192.     mv *.o /unc/alexande/spiderweb/master/sparc_sunos ; \
  1193. done; cd ../c
  1194. cc -DDEBUG -g -DSTAT -c tangle.c; \
  1195. cc -DDEBUG -g -DSTAT -o /unc/alexande/bin/sparc_sunos/ceetangle /unc/alexande/spiderweb/master/sparc_sunos/common.o /unc/alexande/spiderweb/master/sparc_sunos/pathopen.o tangle.o
  1196. ld: /unc/alexande/spiderweb/master/sparc_sunos/common.o: Not a directory
  1197. *** Error code 4
  1198. make: Fatal error: Command failed for target `boot'
  1199. Current working directory /tmp_mnt/auto/phi/phi2/unc/alexande/spiderweb/c
  1200. *** Error code 1
  1201. make: Fatal error: Command failed for target `boot'
  1202. ===============================================================================
  1203.  
  1204. The problem is that there is no directory WEBROOT/master/sparc_sunos where
  1205. sparc_sunos is the value returned by cputype.  I see that Spidery WEB is
  1206. distributed with null directories WEBROOT/master/sun3 and WEBROOT/master/vax.
  1207. Instead of "precreating" these null directories, why not dynamically create
  1208. them?  Note that there wasn't anything in WEBROOT/README or
  1209. EBROOT/master/WebMake which indicated that cputype has to return either sun3
  1210. or vax (or that a null directory has to be created).
  1211.  
  1212. The last line of WEBROOT/BUGS is
  1213.  
  1214. ===============================================================================
  1215. ===> Bundled 29 Nov 89; all bugs into patches/008
  1216. ===============================================================================
  1217.  
  1218. If you have any questions, please let me know.
  1219.  
  1220. Thanks,
  1221. Geoff
  1222.  
  1223. From nr Mon Apr 16 10:57:52 1990
  1224. Received: by cs.Princeton.EDU (5.57/1.100)
  1225.     id AA08937; Mon, 16 Apr 90 10:57:34 EDT
  1226. Date: Mon, 16 Apr 90 10:57:34 EDT
  1227. From: Norman Ramsey <nr>
  1228. Message-Id: <9004161457.AA08937@cs.Princeton.EDU>
  1229. To: alexande@cs.unc.edu
  1230. Subject: Re:  Problem installing spidery WEB
  1231. Cc: nr
  1232. Status: R
  1233.  
  1234. > Norman,
  1235. > I havd the following problems installing Spidery WEB:
  1236. > *  I was unable to make web in the larch subdirectory.
  1237. > Error: "comment begin" must have a restricted translation
  1238. > Error: "line begin" must have a restricted translation
  1239.  
  1240. Fixed.  You need <"%"> not % and <"%line"> not %line
  1241.  
  1242. > * I had two problems making web in the penelope subdirectory although I did
  1243. >   get a tangle and weave wiich run.  Why did I get a Fatal error from make
  1244. >   (I believe it comes from /bin/make -f SpiderMakefile $*)?  
  1245.  
  1246. Beats me.
  1247.  
  1248.  
  1249. > Why is there
  1250. >   potential cycle error?
  1251.  
  1252. Cleverness about newlines in annotations.  Context eliminates the
  1253. possibility of a cycle---check the productions.list file if you're not
  1254. clear about that.
  1255.  
  1256. > I recently started using Spidery WEB.  I have encountered a few minor problems.
  1257. > The first problem is that I would like to use C code in a module name.  This
  1258. > is illustrated by the following short example.
  1259. > ===============================================================================
  1260. > @*= Starred module with |C_code|.
  1261.  
  1262. This is broken just like anything else that changes catcodes in
  1263. arguments.  It's a TeX problem that nobody knows how to fix.
  1264.  
  1265. > As a temporary soultion for using C code in module names, I tried using \it.
  1266. > This illustrated by
  1267. > ===============================================================================
  1268. > @*= Starred module with {\it C\_code}.
  1269. > @*= Index.
  1270. > ===============================================================================
  1271. > This didn't work.  When I ran TeX, I got
  1272. > ......
  1273. > A solution which worked for me was to move \write\cont{\string... after
  1274. > \openout\cont=\contentsfile.  This is similar to the code in CWEB's
  1275. > cwebmac.tex.  Is this a good fix?
  1276.  
  1277. Looks good to me.
  1278.  
  1279. > This problem has to do with C preprocessor commands and the index.  Consider
  1280. > the following short example.
  1281. > Ceeweave and TeX both run fine.  However, the index contains entries for ifdef,
  1282. > include, and endif (in italics and without the #).  I don't think preprocessor
  1283. > commands should be in the index (in any form).  What do you think?  How do I
  1284. > fix this?
  1285. >
  1286. > This problem invloves #include and the index.  Consider the following short
  1287. > example.
  1288. > Both ceeweave and TeX run fine.  However the index contains entries for test
  1289. > and it.  It should contain instead an entry for test.it (or no entry).  What
  1290. > do you think?  How do I fix this?
  1291.  
  1292. You're not going to be able to do anything about this without
  1293. fundamentally changing Weave's idea of what an identifier is.  
  1294. If you want you could make the preprocessor directives reserved words,
  1295. suppressing their appearance in the index, but that will have
  1296. unpleasant repercussions, I'm sure.  If you really want to fix this
  1297. you'll have to do some hacking.
  1298.  
  1299. > This problem has to do with spacing in ANSI C function parameter
  1300. > specifications.  Consider the following short example.
  1301.  
  1302. Nobody has written a Spider description for ANSI C that I am aware of.
  1303. If you care to write one I'll be happy to put it in the distribution.
  1304.  
  1305. > This problem has to do with the running head.  Consider the following short
  1306. > example.
  1307. > ===============================================================================
  1308. > @*= Test of starred modules -- chapter.
  1309. > @*2 Test of starred modules -- subsection.
  1310. > @*4 Test of starred modules -- subsubsection.
  1311. > @*=Index.
  1312. > ===============================================================================
  1313. > Both ceeweave and TeX run fine.  However, the running head on page 1 has module
  1314. > number 1 and the title for module 3.  I believe that they should be consistent.
  1315.  
  1316. Fidget with \firstmark, \topmark, and all of their friends in
  1317. webkernel.tex.  Let me know when you have something you're happy with.
  1318.  
  1319. > Actually, I would like to have only starred modules which cause page ejects be
  1320. > reflected in the running head.  What do you think?  How do I fix this?
  1321.  
  1322. Not a bad idea.  Get hacking.
  1323.  
  1324. > This is not really a problem as much as a design question.  I feel that @f
  1325. > should not result in any text in the TeX output (either in the module in
  1326. > which it occurs or in the index).  @f is a directive to ceeweave; it does not
  1327. > contribute to understanding the C program.  For example, if I use Xlib, I need
  1328. > to @f a number (20+) of indetifiers which are "typed" in the Xlib header files.
  1329. > I feel that having the @f's appear in a module (and in the index) simply
  1330. > detracts from the program.  What do you think?  How might I "fix" @f?
  1331.  
  1332. I think that if you're going to lie to your reader by using @f, your
  1333. reader should at least have a chance to catch you in the act.  From
  1334. this you may infer that I never use @f.
  1335.  
  1336.  
  1337. Norman
  1338.  
  1339. From ndn@seg.npl.co.uk Thu Mar 29 04:58:29 1990
  1340. Received: by cs.Princeton.EDU (5.57/1.98)
  1341.     id AA02242; Thu, 29 Mar 90 04:58:28 EST
  1342. Received: from mcsun.eu.net by Princeton.EDU (5.58+++/2.32/mailrelay)
  1343.     id AA14282; Thu, 29 Mar 90 04:56:23 EST
  1344. Received: by mcsun.EU.net via EUnet; Thu, 29 Mar 90 11:57:25 +0200 (MET)
  1345. Received: from psg.npl.co.uk by kestrel.Ukc.AC.UK   with UUCP  id aa29895;
  1346.           29 Mar 90 10:32 BST
  1347. Received: from guava.seg.npl.co.uk by snow.psg.npl.co.uk; Thu, 29 Mar 90 09:29:47 BST
  1348. From: Nick North <ndn@seg.npl.co.uk>
  1349. Date: Thu, 29 Mar 90 09:32:36 BST
  1350. Message-Id: <10449.9003290832@guava.seg.npl.co.uk>
  1351. To: nr@Princeton.EDU
  1352. Subject: Spiderweb bug
  1353. Status: RO
  1354.  
  1355. We are using the adaweave generated by Spiderweb and have run into
  1356. problems with the ** operator: the ada.spider supplied generates a
  1357. weave which turns
  1358.   i := 3 ** Integer(p);
  1359. into
  1360.   $\|i\mathbin{:=}\O{3}C\\{Integer}\ (\|p); \32$
  1361. So the ** has disappeared.
  1362. The following patch solves the problem (I don't know if it is the best
  1363. solution though):
  1364.  
  1365. *** ada.spider.old    Wed Mar 28 11:46:50 1990
  1366. --- ada.spider    Wed Mar 28 10:04:03 1990
  1367. ***************
  1368. *** 46,52 ****
  1369.   
  1370.   token => category arrow translation <"\\AR">
  1371.   token .. category binop translation <"\\.{..}">
  1372. ! token ** category binop 
  1373.   token := category binop translation <"\\mathbin{:=}">
  1374.   token /= translation <"\\I"> category binop 
  1375.   token >= translation <"\\G"> category binop 
  1376. --- 46,52 ----
  1377.   
  1378.   token => category arrow translation <"\\AR">
  1379.   token .. category binop translation <"\\.{..}">
  1380. ! token ** category binop translation <"\\mathbin{**}">
  1381.   token := category binop translation <"\\mathbin{:=}">
  1382.   token /= translation <"\\I"> category binop 
  1383.   token >= translation <"\\G"> category binop 
  1384.  
  1385. We are running the version of Spiderweb whose BUGS file ends with:
  1386. ===> Bundled 11 Apr 89; all bugs into patches/003
  1387.  
  1388. Nick North
  1389. National Physical Laboratory, UK
  1390.  
  1391. From alexande@cs.unc.edu Tue Apr 24 11:26:22 1990
  1392. Received: by cs.Princeton.EDU (5.57/1.101)
  1393.     id AA29083; Tue, 24 Apr 90 11:26:18 EDT
  1394. Received: from bashful.cs.unc.edu by mcnc.mcnc.org (5.59/MCNC/5-16-88)
  1395.     id AA18202; Tue, 24 Apr 90 11:25:14 EDT
  1396. Received: from fillmore.cs.unc.edu by bashful.cs.unc.edu (5.61/UNC_02-28-90)
  1397.     id AA21656; Tue, 24 Apr 90 11:24:49 -0400
  1398. Received: by fillmore.cs.unc.edu (5.61/UNC_02-28-90)
  1399.     id AA10498; Tue, 24 Apr 90 11:24:40 -0400
  1400. Date: Tue, 24 Apr 90 11:24:40 -0400
  1401. From: Geoffrey D. Alexander <alexande@cs.unc.edu>
  1402. Message-Id: <9004241524.AA10498@fillmore.cs.unc.edu>
  1403. To: nr@cs
  1404. Subject: 3 more SpiderWEB problems
  1405. Cc: alexande@cs.unc.edu
  1406. Status: RO
  1407.  
  1408. I have run into three more Spidery WEB problems:
  1409.  
  1410. 8.  Page number may be off by one in table of contents.  Illustrated by the
  1411.     following example.  Not that module 2 starts on page 2 -- table of contents
  1412.     entry for module 2 gives page 1.
  1413.  
  1414. ===============================================================================
  1415. @*= A Page Number Test.
  1416.  
  1417. Include a large amount of vertical space.
  1418. \vskip 6in
  1419.  
  1420. @*2 A level 2 module.
  1421.  
  1422. Include a large amount of vertical space.
  1423. \vskip 6in
  1424.  
  1425. @*= Index.
  1426. ===============================================================================
  1427.  
  1428. 9.  Enums not formatted correctly by ceeweave.  Illustrated by the following
  1429.     example.  I think enums should be formatted similar to structures.  Also,
  1430.     left arrows are not appropriate; I think a colon might be better.  Finally,
  1431.     enumerated values (false and true) should be underscored in index.
  1432.  
  1433. ===============================================================================
  1434. @*= Test of enum.
  1435.  
  1436. @c
  1437. enum {
  1438.   false=0,
  1439.   true=1
  1440. } boolean;
  1441.  
  1442. @*= Index.
  1443. ===============================================================================
  1444.  
  1445. 10. Typedefs not formated correctly by ceeweave.  Illustrated by the following
  1446.     example.  The new types (boolean, lstring_head, lstring, and string) should
  1447.     be formatted as types (ie. in bold).  I tried using @f to redefine them.
  1448.     See second example.  This caused there to be no line break between typedefs
  1449.     and a small white space between the new type and ;.
  1450.  
  1451. ===============================================================================
  1452. @*= Test of typedef.
  1453.  
  1454. @c
  1455. typedef enum {
  1456.   @!false=0,
  1457.   @!true=1
  1458. } boolean;
  1459. typedef struct {
  1460.   int buf_len;
  1461.   int cur_len;
  1462. } lstring_head;
  1463. typedef lstring_head *lstring;
  1464. typedef char *string;
  1465.  
  1466. @*= Index.
  1467. ===============================================================================
  1468.  
  1469. ===============================================================================
  1470. @*= Test of typedef.
  1471.  
  1472. @f boolean char
  1473. @f lstring_head char
  1474. @f lstring char
  1475. @f string char
  1476.  
  1477. @c
  1478. typedef enum {
  1479.   @!false=0,
  1480.   @!true=1
  1481. } boolean;
  1482. typedef struct {
  1483.   int buf_len;
  1484.   int cur_len;
  1485. } lstring_head;
  1486. typedef lstring_head *lstring;
  1487. typedef char *string;
  1488.  
  1489. @*= Index.
  1490. ===============================================================================
  1491.  
  1492. The last line of the BUGS file is
  1493.  
  1494.   ==> Bundled 29 Nov 89; all bugs into patches/008
  1495.  
  1496. I think that problem 8 requires a change to webkernel.tex and that problems 9
  1497. and 10 reguire changes to the C definition source.  I plan to look at problem
  1498. 8 later this week.  I'll take a look at problems 9 and 10 when I get around to
  1499. creating a Spidery WEB for ANSI C.
  1500.  
  1501. If you have any suggestions or fixes, please let me know.
  1502.  
  1503. Thanks,
  1504. Geoff Alexander
  1505.  
  1506. From nr Tue Apr 24 17:05:07 1990
  1507. Received: by cs.Princeton.EDU (5.57/1.101)
  1508.     id AA08862; Tue, 24 Apr 90 17:04:56 EDT
  1509. Date: Tue, 24 Apr 90 17:04:56 EDT
  1510. From: Norman Ramsey <nr>
  1511. Message-Id: <9004242104.AA08862@cs.Princeton.EDU>
  1512. To: alexande@cs.unc.edu
  1513. Subject: Re:  3 more SpiderWEB problems
  1514. Cc: nr
  1515. Status: R
  1516.  
  1517. > I have run into three more Spidery WEB problems:
  1518. > 8.  Page number may be off by one in table of contents.
  1519.  
  1520. This is a problem with the underlying TeX macros (marks, and so on).
  1521. I'll be delighted if you can find a fix.
  1522.  
  1523. > 9.  Enums not formatted correctly by ceeweave.
  1524.  
  1525. enums are not K&R (old-style C).  An ANSI C spider definition is badly
  1526. needed, but I don't have funding to produce one.
  1527.  
  1528. > 10. Typedefs not formated correctly by ceeweave.  
  1529.  
  1530. Only if you believe ``correctly'' == ``what Silvio does.''
  1531. The problem is that the logical structure of typedefs follows the
  1532. structure of the C program, whereas the formatting is done on the
  1533. structure of the WEB source.  There are nasty problems of scoping, and
  1534. even doing a botched job requires a two-pass algorithm.
  1535.  
  1536. > I tried using @f to redefine them.
  1537. >     See second example.  This caused there to be no line break between typedefs
  1538. >     and a small white space between the new type and ;.
  1539. > ===============================================================================
  1540. > @*= Test of typedef.
  1541. > @f boolean char
  1542. > @f lstring_head char
  1543. > @f lstring char
  1544. > @f string char
  1545.  
  1546. This should be fixable by fiddling the c.spider definition; let me
  1547. know how you make out.
  1548.  
  1549. > I'll take a look at problems 9 and 10 when I get around to
  1550. > creating a Spidery WEB for ANSI C.
  1551.  
  1552. Sorry to be so unhelpful, but I have been putting my time into new,
  1553. better-designed tools, instead of continually patching web.
  1554.  
  1555. Norman
  1556.  
  1557. From alexande@cs.unc.edu Tue Apr 24 21:51:59 1990
  1558. Received: by cs.Princeton.EDU (5.57/1.101)
  1559.     id AA11728; Tue, 24 Apr 90 21:51:55 EDT
  1560. Received: from bashful.cs.unc.edu by mcnc.mcnc.org (5.59/MCNC/5-16-88)
  1561.     id AA00785; Tue, 24 Apr 90 21:50:54 EDT
  1562. Received: from fillmore.cs.unc.edu by bashful.cs.unc.edu (5.61/UNC_02-28-90)
  1563.     id AA23752; Tue, 24 Apr 90 21:50:29 -0400
  1564. Received: by fillmore.cs.unc.edu (5.61/UNC_02-28-90)
  1565.     id AA01306; Tue, 24 Apr 90 21:50:20 -0400
  1566. Date: Tue, 24 Apr 90 21:50:20 -0400
  1567. From: Geoffrey D. Alexander <alexande@cs.unc.edu>
  1568. Message-Id: <9004250150.AA01306@fillmore.cs.unc.edu>
  1569. To: nr@cs
  1570. Subject: Some Spidery WEB fixes
  1571. Cc: alexande@cs.unc.edu
  1572. Status: R
  1573.  
  1574. Norman,
  1575.  
  1576. I have fixed some of the Spidery WEB problem is snet you.  First, a fix for the
  1577. "code in a module name" problem (this also allows italic text in a module
  1578. name).  This fix involves two changes to webkernel.tex:
  1579.  
  1580. Initialize \DC:
  1581. ===== old =====================================================================
  1582. \def\CD{\relax\ifmmode\let\DC\egroup\hbox\bgroup\else\let\DC\relax\fi}
  1583. ===== new =====================================================================
  1584. \def\CD{\relax\ifmmode\let\DC\egroup\hbox\bgroup\else\let\DC\relax\fi}
  1585. \let\DC\relax
  1586. ===============================================================================
  1587.  
  1588. Move the he code that writes "\catcode`@=11" to the toc file:
  1589. ===== old =====================================================================
  1590. \newwrite\cont
  1591. \output{\setbox0=\page % the first page is garbage
  1592.   \openout\cont=\contentsfile
  1593.   \global\output{\normaloutput\page\lheader\rheader\lfooter\rfooter}}
  1594. \setpage
  1595. \vbox to \vsize{} % the first \topmark won't be null
  1596. % Delete as per bug report from kademan@stat.wisc.edu
  1597. % Causes headings on first page to be missing
  1598. % \eject
  1599. \write\cont{\string\catcode`\string\@=11}% a hack to make contents
  1600.                      % take stuff in \.{---}
  1601. ===== new =====================================================================
  1602. \newwrite\cont
  1603. \output{\setbox0=\page % the first page is garbage
  1604.   \openout\cont=\contentsfile
  1605.   \write\cont{\string\catcode`\string\@=11}     % a hack to make contents
  1606.                         % take stuff in \.{---}
  1607.   \global\output{\normaloutput\page\lheader\rheader\lfooter\rfooter}}
  1608. \setpage
  1609. \vbox to \vsize{} % the first \topmark won't be null
  1610. % Delete as per bug report from kademan@stat.wisc.edu
  1611. % Causes headings on first page to be missing
  1612. % \eject
  1613. ===============================================================================
  1614.  
  1615. Next, a fix for the "module name in running head" problem.  This fix makes the
  1616. module name in the running head change only a "page eject" module is
  1617. encountered.  This fix involves a a single change.  
  1618.  
  1619. Move the code that sets \rhead from \N to the \headcheck.
  1620. === old \N ====================================================================
  1621. \outer\def\N#1.#2.{\MN#1.\headcheck#2\headcheck
  1622.   \edef\rhead{\uppercase{\ignorespaces\themodtitle}} % define running headline
  1623.   \message{*\modno} % progress report
  1624.   \edef\next{\write\cont{\thetocskip
  1625.     \Z{\theopen\relax
  1626.         \themodtitle}{\modno}{\the\pageno}}}\next % to contents file
  1627.   \ifon\startsection{\bf\ignorespaces\themodtitle.\quad}\ignorespaces}
  1628. === new \N (includes third fix) ===============================================
  1629. \outer\def\N#1.#2.{\MN#1.\headcheck#2\headcheck
  1630.   \message{*\modno} % progress report
  1631.   \edef\next{\write\cont{\thetocskip\Z{\theopen\relax
  1632.     \themodtitle}{\modno}{\noexpand\the\pageno}}}\next % to contents file
  1633.   \ifon\startsection{\bf\ignorespaces\themodtitle.\quad}\ignorespaces}
  1634. ===============================================================================
  1635.  
  1636. === old \headcheck ============================================================
  1637. \def\headcheck#1#2\headcheck{%
  1638.     \makethechar{#1}%
  1639.     \def\theskipper{\vfil\penalty-100\vfilneg\vskip12ptminus3pt}%
  1640.                 % skip before new module
  1641.     \def\theopen{}% opening skip in toc entry
  1642.     \def\thetocskip{}% vertical skip before toc entry
  1643.     \def\themodtitle{{#2}}
  1644.     \ifnextchar={%
  1645.         \def\theskipper{\vfil\eject}%
  1646.         \canceltrue
  1647.         \def\theopen{\bf}%
  1648.         \def\thetocskip{\vskip3ptplus1in\penalty-100
  1649.             \vskip0ptplus-1in}%
  1650.     }{\ifnextchar1{%
  1651.         \cancelfalse
  1652.         \def\theskipper{\vfil\eject}%
  1653.         \def\theopen{\hskip2em}%
  1654.     }{\ifnextchar2{%
  1655.         \cancelfalse
  1656.         \def\theopen{\hskip2em}%
  1657.     }{\ifnextchar3{%
  1658.         \cancelfalse
  1659.         \def\theskipper{\vfil\eject}%
  1660.         \def\theopen{\hskip4em}%
  1661.     }{\ifnextchar4{%
  1662.         \cancelfalse
  1663.         \def\theopen{\hskip4em}%
  1664.     }{% else 
  1665.         \ifcancel\else
  1666.             \def\theskipper{\vfil\eject}%
  1667.         \fi
  1668.         \cancelfalse
  1669.         \def\themodtitle{#1{#2}}%
  1670.     }}}}}%
  1671.     \theskipper
  1672. }
  1673. === new \headcheck ============================================================
  1674. \def\headcheck#1#2\headcheck{%
  1675.     \makethechar{#1}%
  1676.     \def\theskipper{\vfil\penalty-100\vfilneg\vskip12ptminus3pt}%
  1677.                 % skip before new module
  1678.     \def\theopen{}% opening skip in toc entry
  1679.     \def\thetocskip{}% vertical skip before toc entry
  1680.     \def\themodtitle{{#2}}
  1681.     \ifnextchar={%
  1682.               \def\theskipper{\vfil\eject%
  1683.                 \edef\rhead{\uppercase{\ignorespaces%
  1684.                     \themodtitle}}}%
  1685.         \canceltrue
  1686.         \def\theopen{\bf}%
  1687.         \def\thetocskip{\vskip3ptplus1in\penalty-100
  1688.             \vskip0ptplus-1in}%
  1689.     }{\ifnextchar1{%
  1690.         \cancelfalse
  1691.               \def\theskipper{\vfil\eject%
  1692.                 \edef\rhead{\uppercase{\ignorespaces%
  1693.                     \themodtitle}}}%
  1694.         \def\theopen{\hskip2em}%
  1695.     }{\ifnextchar2{%
  1696.         \cancelfalse
  1697.         \def\theopen{\hskip2em}%
  1698.     }{\ifnextchar3{%
  1699.         \cancelfalse
  1700.               \def\theskipper{\vfil\eject%
  1701.                 \edef\rhead{\uppercase{\ignorespaces%
  1702.                     \themodtitle}}}%
  1703.         \def\theopen{\hskip4em}%
  1704.     }{\ifnextchar4{%
  1705.         \cancelfalse
  1706.         \def\theopen{\hskip4em}%
  1707.     }{% else 
  1708.         \ifcancel\else
  1709.                   \def\theskipper{\vfil\eject%
  1710.                     \edef\rhead{\uppercase{\ignorespaces%
  1711.                         \themodtitle}}}%
  1712.         \fi
  1713.         \cancelfalse
  1714.         \def\themodtitle{#1{#2}}%
  1715.     }}}}}%
  1716.     \theskipper
  1717. }
  1718. ===============================================================================
  1719.  
  1720. Last, a fix for the "table of contents page number off by one" problem.  This
  1721. invloves a single change to webkernel.tex:
  1722.  
  1723. Add \noexpand before \the\pageno in \N.
  1724. === old \N ====================================================================
  1725. \outer\def\N#1.#2.{\MN#1.\headcheck#2\headcheck
  1726.   \edef\rhead{\uppercase{\ignorespaces\themodtitle}} % define running headline
  1727.   \message{*\modno} % progress report
  1728.   \edef\next{\write\cont{\thetocskip
  1729.     \Z{\theopen\relax
  1730.         \themodtitle}{\modno}{\the\pageno}}}\next % to contents file
  1731.   \ifon\startsection{\bf\ignorespaces\themodtitle.\quad}\ignorespaces}
  1732. === new \N (includes second fix) ==============================================
  1733. \outer\def\N#1.#2.{\MN#1.\headcheck#2\headcheck
  1734.   \message{*\modno} % progress report
  1735.   \edef\next{\write\cont{\thetocskip\Z{\theopen\relax
  1736.     \themodtitle}{\modno}{\noexpand\the\pageno}}}\next % to contents file
  1737.   \ifon\startsection{\bf\ignorespaces\themodtitle.\quad}\ignorespaces}
  1738. ===============================================================================
  1739.  
  1740. Note that there are two distinct changes to \N (one for the second fix and one
  1741. for the third fix).  Feel free to make the changes to the distributed
  1742. webkernel.tex.  If you have any questions or you have problems with any of the
  1743. fixes, please let me know.
  1744.  
  1745. Geoff Alexander
  1746.  
  1747. From alexande@cs.unc.edu Tue Apr 24 21:51:59 1990
  1748. Received: by cs.Princeton.EDU (5.57/1.101)
  1749.     id AA11728; Tue, 24 Apr 90 21:51:55 EDT
  1750. Received: from bashful.cs.unc.edu by mcnc.mcnc.org (5.59/MCNC/5-16-88)
  1751.     id AA00785; Tue, 24 Apr 90 21:50:54 EDT
  1752. Received: from fillmore.cs.unc.edu by bashful.cs.unc.edu (5.61/UNC_02-28-90)
  1753.     id AA23752; Tue, 24 Apr 90 21:50:29 -0400
  1754. Received: by fillmore.cs.unc.edu (5.61/UNC_02-28-90)
  1755.     id AA01306; Tue, 24 Apr 90 21:50:20 -0400
  1756. Date: Tue, 24 Apr 90 21:50:20 -0400
  1757. From: Geoffrey D. Alexander <alexande@cs.unc.edu>
  1758. Message-Id: <9004250150.AA01306@fillmore.cs.unc.edu>
  1759. To: nr@cs
  1760. Subject: Some Spidery WEB fixes
  1761. Cc: alexande@cs.unc.edu
  1762. Status: RO
  1763.  
  1764. Norman,
  1765.  
  1766. I have fixed some of the Spidery WEB problem is snet you.  First, a fix for the
  1767. "code in a module name" problem (this also allows italic text in a module
  1768. name).  This fix involves two changes to webkernel.tex:
  1769.  
  1770. Initialize \DC:
  1771. ===== old =====================================================================
  1772. \def\CD{\relax\ifmmode\let\DC\egroup\hbox\bgroup\else\let\DC\relax\fi}
  1773. ===== new =====================================================================
  1774. \def\CD{\relax\ifmmode\let\DC\egroup\hbox\bgroup\else\let\DC\relax\fi}
  1775. \let\DC\relax
  1776. ===============================================================================
  1777.  
  1778. Move the he code that writes "\catcode`@=11" to the toc file:
  1779. ===== old =====================================================================
  1780. \newwrite\cont
  1781. \output{\setbox0=\page % the first page is garbage
  1782.   \openout\cont=\contentsfile
  1783.   \global\output{\normaloutput\page\lheader\rheader\lfooter\rfooter}}
  1784. \setpage
  1785. \vbox to \vsize{} % the first \topmark won't be null
  1786. % Delete as per bug report from kademan@stat.wisc.edu
  1787. % Causes headings on first page to be missing
  1788. % \eject
  1789. \write\cont{\string\catcode`\string\@=11}% a hack to make contents
  1790.                      % take stuff in \.{---}
  1791. ===== new =====================================================================
  1792. \newwrite\cont
  1793. \output{\setbox0=\page % the first page is garbage
  1794.   \openout\cont=\contentsfile
  1795.   \write\cont{\string\catcode`\string\@=11}     % a hack to make contents
  1796.                         % take stuff in \.{---}
  1797.   \global\output{\normaloutput\page\lheader\rheader\lfooter\rfooter}}
  1798. \setpage
  1799. \vbox to \vsize{} % the first \topmark won't be null
  1800. % Delete as per bug report from kademan@stat.wisc.edu
  1801. % Causes headings on first page to be missing
  1802. % \eject
  1803. ===============================================================================
  1804.  
  1805. Next, a fix for the "module name in running head" problem.  This fix makes the
  1806. module name in the running head change only a "page eject" module is
  1807. encountered.  This fix involves a a single change.  
  1808.  
  1809. Move the code that sets \rhead from \N to the \headcheck.
  1810. === old \N ====================================================================
  1811. \outer\def\N#1.#2.{\MN#1.\headcheck#2\headcheck
  1812.   \edef\rhead{\uppercase{\ignorespaces\themodtitle}} % define running headline
  1813.   \message{*\modno} % progress report
  1814.   \edef\next{\write\cont{\thetocskip
  1815.     \Z{\theopen\relax
  1816.         \themodtitle}{\modno}{\the\pageno}}}\next % to contents file
  1817.   \ifon\startsection{\bf\ignorespaces\themodtitle.\quad}\ignorespaces}
  1818. === new \N (includes third fix) ===============================================
  1819. \outer\def\N#1.#2.{\MN#1.\headcheck#2\headcheck
  1820.   \message{*\modno} % progress report
  1821.   \edef\next{\write\cont{\thetocskip\Z{\theopen\relax
  1822.     \themodtitle}{\modno}{\noexpand\the\pageno}}}\next % to contents file
  1823.   \ifon\startsection{\bf\ignorespaces\themodtitle.\quad}\ignorespaces}
  1824. ===============================================================================
  1825.  
  1826. === old \headcheck ============================================================
  1827. \def\headcheck#1#2\headcheck{%
  1828.     \makethechar{#1}%
  1829.     \def\theskipper{\vfil\penalty-100\vfilneg\vskip12ptminus3pt}%
  1830.                 % skip before new module
  1831.     \def\theopen{}% opening skip in toc entry
  1832.     \def\thetocskip{}% vertical skip before toc entry
  1833.     \def\themodtitle{{#2}}
  1834.     \ifnextchar={%
  1835.         \def\theskipper{\vfil\eject}%
  1836.         \canceltrue
  1837.         \def\theopen{\bf}%
  1838.         \def\thetocskip{\vskip3ptplus1in\penalty-100
  1839.             \vskip0ptplus-1in}%
  1840.     }{\ifnextchar1{%
  1841.         \cancelfalse
  1842.         \def\theskipper{\vfil\eject}%
  1843.         \def\theopen{\hskip2em}%
  1844.     }{\ifnextchar2{%
  1845.         \cancelfalse
  1846.         \def\theopen{\hskip2em}%
  1847.     }{\ifnextchar3{%
  1848.         \cancelfalse
  1849.         \def\theskipper{\vfil\eject}%
  1850.         \def\theopen{\hskip4em}%
  1851.     }{\ifnextchar4{%
  1852.         \cancelfalse
  1853.         \def\theopen{\hskip4em}%
  1854.     }{% else 
  1855.         \ifcancel\else
  1856.             \def\theskipper{\vfil\eject}%
  1857.         \fi
  1858.         \cancelfalse
  1859.         \def\themodtitle{#1{#2}}%
  1860.     }}}}}%
  1861.     \theskipper
  1862. }
  1863. === new \headcheck ============================================================
  1864. \def\headcheck#1#2\headcheck{%
  1865.     \makethechar{#1}%
  1866.     \def\theskipper{\vfil\penalty-100\vfilneg\vskip12ptminus3pt}%
  1867.                 % skip before new module
  1868.     \def\theopen{}% opening skip in toc entry
  1869.     \def\thetocskip{}% vertical skip before toc entry
  1870.     \def\themodtitle{{#2}}
  1871.     \ifnextchar={%
  1872.               \def\theskipper{\vfil\eject%
  1873.                 \edef\rhead{\uppercase{\ignorespaces%
  1874.                     \themodtitle}}}%
  1875.         \canceltrue
  1876.         \def\theopen{\bf}%
  1877.         \def\thetocskip{\vskip3ptplus1in\penalty-100
  1878.             \vskip0ptplus-1in}%
  1879.     }{\ifnextchar1{%
  1880.         \cancelfalse
  1881.               \def\theskipper{\vfil\eject%
  1882.                 \edef\rhead{\uppercase{\ignorespaces%
  1883.                     \themodtitle}}}%
  1884.         \def\theopen{\hskip2em}%
  1885.     }{\ifnextchar2{%
  1886.         \cancelfalse
  1887.         \def\theopen{\hskip2em}%
  1888.     }{\ifnextchar3{%
  1889.         \cancelfalse
  1890.               \def\theskipper{\vfil\eject%
  1891.                 \edef\rhead{\uppercase{\ignorespaces%
  1892.                     \themodtitle}}}%
  1893.         \def\theopen{\hskip4em}%
  1894.     }{\ifnextchar4{%
  1895.         \cancelfalse
  1896.         \def\theopen{\hskip4em}%
  1897.     }{% else 
  1898.         \ifcancel\else
  1899.                   \def\theskipper{\vfil\eject%
  1900.                     \edef\rhead{\uppercase{\ignorespaces%
  1901.                         \themodtitle}}}%
  1902.         \fi
  1903.         \cancelfalse
  1904.         \def\themodtitle{#1{#2}}%
  1905.     }}}}}%
  1906.     \theskipper
  1907. }
  1908. ===============================================================================
  1909.  
  1910. Last, a fix for the "table of contents page number off by one" problem.  This
  1911. invloves a single change to webkernel.tex:
  1912.  
  1913. Add \noexpand before \the\pageno in \N.
  1914. === old \N ====================================================================
  1915. \outer\def\N#1.#2.{\MN#1.\headcheck#2\headcheck
  1916.   \edef\rhead{\uppercase{\ignorespaces\themodtitle}} % define running headline
  1917.   \message{*\modno} % progress report
  1918.   \edef\next{\write\cont{\thetocskip
  1919.     \Z{\theopen\relax
  1920.         \themodtitle}{\modno}{\the\pageno}}}\next % to contents file
  1921.   \ifon\startsection{\bf\ignorespaces\themodtitle.\quad}\ignorespaces}
  1922. === new \N (includes second fix) ==============================================
  1923. \outer\def\N#1.#2.{\MN#1.\headcheck#2\headcheck
  1924.   \message{*\modno} % progress report
  1925.   \edef\next{\write\cont{\thetocskip\Z{\theopen\relax
  1926.     \themodtitle}{\modno}{\noexpand\the\pageno}}}\next % to contents file
  1927.   \ifon\startsection{\bf\ignorespaces\themodtitle.\quad}\ignorespaces}
  1928. ===============================================================================
  1929.  
  1930. Note that there are two distinct changes to \N (one for the second fix and one
  1931. for the third fix).  Feel free to make the changes to the distributed
  1932. webkernel.tex.  If you have any questions or you have problems with any of the
  1933. fixes, please let me know.
  1934.  
  1935. Geoff Alexander
  1936.  
  1937.